Large datasets are increasingly readily available from a wide variety of different domains. For example, websites regularly acquire very large datasets of consumer purchasing information, weather monitoring systems regularly acquire a wide variety of measurement data, security installations acquire a wide variety of image data, etc. Sifting through these copious datasets can be onerous and costly, but the rewards for identifying meaningful patterns and trends can be great.
Machine learning and data analysis tools offer one possible method for automating the analysis process. These tools can classify data and determine associations between different datasets. However, when the datasets become exceptionally large these tools may be unable to determine meaningful relationships in a reasonable amount of time. For example, in an application comparing images, e.g. to recognize common objects in each image, each additional image will exponentially increase the imposed load as the Nth image must be compared with each of the preceding N-1 images. For even a small 64×64 grayscale pixel image, this can be a considerable constraint (64×64=4096 dimensions per image).
Accordingly, there exists a need to more accurately and to more quickly determine associations among data points in large datasets. In particular, in many situations it would be ideal to determine or to estimate a nearest neighbor to a target data vector in a dataset quickly and efficiently.
The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed embodiments. Further, the drawings have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be expanded or reduced to help improve the understanding of the embodiments. Similarly, some components and/or operations may be separated into different blocks or combined into a single block for the purposes of discussion of some of the embodiments. Moreover, while the various embodiments are amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the particular embodiments described. On the contrary, the embodiments are intended to cover all modifications, equivalents, and alternatives falling within the scope of the disclosed embodiments as defined by the appended claims.